package com.br.estoque.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.br.estoque.bean.LocalEquipamento;
import com.br.estoque.bean.Marca;
import com.br.estoque.bean.Material;
import com.br.estoque.bean.Modelo;
import com.br.estoque.bean.Situacao;
import com.br.estoque.bean.Tipo;



public class MaterialDAO extends DataUtils {
	public List<Material> getAll(){
		Connection conn = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		List<Material> listaMaterial = new ArrayList<Material>();
		Material material = null;

		Marca marca = null;
		Modelo modelo = null;
		Tipo tipo = null;
		LocalEquipamento localEquipamento = null;
		Situacao situacao = new Situacao();
		
		try {
			conn = getConnection();
			stmt = conn.prepareStatement("SELECT * FROM visao_geral");
			rs = stmt.executeQuery();
			while(rs.next()){
				
				material = new Material();
				marca = new Marca();
				modelo = new Modelo();
				tipo = new Tipo();
				localEquipamento = new LocalEquipamento();
				
				marca.setMarca(rs.getString("marca"));
				modelo.setModelo(rs.getString("modelo"));
				localEquipamento.setLocal(rs.getString("local_equip"));
				situacao.setSituacao(rs.getString("situacao"));
				tipo.setTipo(rs.getString("tipo"));
				
				material.setCodigo(rs.getInt("codigo"));
				material.setNumeroPatrimonio(rs.getString("numero_patrimonio"));
				material.setMarca(marca);
				material.setModelo(modelo);
				material.setTipo(tipo);
				material.setLocalEquipamento(localEquipamento);
				material.setSituacao(situacao);
				material.setObservacao(rs.getString("observacao"));
				material.setDataEntrada(rs.getDate("data_entrada"));
				material.setDataAlteracao(rs.getDate("data_alteracao"));
				
				listaMaterial.add(material);
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return listaMaterial;
	}
}

